In a computer system providing a distributed environment in which plurality of nodes are connected each other via a network, data sharing has been generally performed in which data is shared between some nodes and the value of the shared data is accessed from each of the some nodes. One of basic processes using shared data is, for example, a distribution in which one node creates and writes a value of the shared data and other nodes read the value of the shared data. Another basic process is, for example, an exchange in which writing and reading are mutually performed between nodes. Yet another basic process is, for example, an aggregation in which a calculation result of a user application processor in each node is sequentially reflected to the value of the shared data in accordance with a value of the calculation result.
Data sharing may be realized by allowing access to data in one node from another node connected to the one node via the network. Data sharing in this manner is used in a distributed object technique in which software components (objects) are disposed in a plurality of nodes on a network to be accessed from other nodes and the plurality of nodes operate in cooperation. Another method for realizing data sharing is, for example, a technique of a software distributed shared memory that virtually assumes a memory space equipped in each node as one shared memory area.
Access to the value of the shared data in another node requires a remote access via the network, thus takes a long time as compared with an access to local data. Further, as in the above-discussed example, the value of the shared data is written and read by a plurality of nodes to perform a process such as distribution, exchange, aggregation, and the like. Consequently, an exclusive access control is required to keep consistency of the content. However, in the case of applying the software distributed shared memory, the process of the exclusive access control is very complicated, so that it takes a long time for the exclusive access control itself. Further, in any method discussed above, when the shared data is locked by another node, access to the value of the locked shared data may be forced to stand by.
Thus, accessing the value of the shared data in a process of a user application processor may deteriorate performance because of process delays caused by a remote access and an exclusive access control. The process delay caused by accessing the value of the shared data has brought a sever influence to the deterioration of the performance especially in a cluster, a grid, or the like that realizes a high speed processing by building one virtual high performance computer by making a plurality of nodes to execute a parallel processing.
In order to avoid at least the state that writing the value of the shared data is postponed due to the exclusive access by another node, the following technique has been proposed. That is, the value of the shared data is preliminarily registered in each node, and writing in each node is respectively performed to the shared data registered in the self node. When writing is performed, synchronization is promptly made with corresponding shared data registered in other nodes (see, for example, Japanese Laid-open Patent Publication No. 2007-58769). Although the stand by for writing caused by the exclusive access control may be avoided with the technique, as discussed above, it is still necessary to make synchronization with corresponding shared data registered in other nodes right after writing the value of the shared data registered in the self node in order to prevent inconsistency with the value of the corresponding shared data registered in other nodes. Accordingly, the problem of the process delay of the user application processor due to a remote access may not be avoided in the result.